package com.java.test.agent.module.apply;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.java.test.agent.constant.AgentCodeConst;
import com.java.test.agent.module.apply.dto.AgentApplyDTO;
import com.java.test.agent.module.apply.dto.AgentApplyQueryDTO;
import com.java.test.agent.module.apply.entity.AgentApplyEntity;
import com.java.test.agent.module.apply.vo.AgentApplyVO;
import com.java.test.agent.module.feescale.AgentFeeScaleDao;
import com.java.test.agent.module.feescale.entity.AgentFeeScaleEntity;
import com.java.test.dto.PageResultDTO;
import com.java.test.dto.ResponseDTO;
import com.java.test.util.SmartPageUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 代理申请Service
 *
 * @author lijie1
 * @date 2020/6/30 0030
 */
@Service
public class AgentApplyService {
    private AgentApplyDao agentApplyDao;
    @Autowired
    public void setAgentApplyDao(AgentApplyDao agentApplyDao) {
        this.agentApplyDao = agentApplyDao;
    }

    private AgentFeeScaleDao agentFeeScaleDao;
    @Autowired
    public void setAgentInfoDao(AgentFeeScaleDao agentInfoDao) {
        this.agentFeeScaleDao = agentInfoDao;
    }

    /**
     * 分页查询
     * @author lijie1
     * @date 2020/6/30 0030
     */
    public ResponseDTO<PageResultDTO<AgentApplyVO>> getSelectByList(AgentApplyQueryDTO queryDTO) {
        Page page = SmartPageUtil.convert2QueryPage(queryDTO);
        List<AgentApplyEntity> entityCount = agentApplyDao.selectByList(queryDTO);
        page.setTotal(entityCount.size());
        List<AgentApplyEntity> entityList = agentApplyDao.getSelectByList(queryDTO);
        PageResultDTO<AgentApplyVO> pageResultDTO = SmartPageUtil.convert2PageResult(page, entityList, AgentApplyVO.class);
        return ResponseDTO.succData(pageResultDTO);
    }

    /**
     * 审核通过
     * @author lijie1
     * @date 2020/7/1 0001
     */
    public ResponseDTO<PageResultDTO<AgentApplyVO>> passByIds(AgentApplyDTO dto) {
        List<AgentApplyEntity> entityList = agentApplyDao.getByIds(0,dto.getIds());
        if (entityList.size()<=0) {
            return ResponseDTO.wrap(AgentCodeConst.NOT_EXIST);
        }
        agentApplyDao.updateById(1,dto.getIds());
        AgentFeeScaleEntity en = agentFeeScaleDao.getEntity();
        for (AgentApplyEntity entity:entityList) {
            agentApplyDao.insertAgentInfo(entity,en);
        }
        return ResponseDTO.succ();
    }

    /**
     * 核拒绝
     * @author lijie1
     * @date 2020/7/1 0001
     */
    public ResponseDTO<PageResultDTO<AgentApplyVO>> failByIds(AgentApplyDTO dto) {
        List<AgentApplyEntity> entityList = agentApplyDao.getByIds(0,dto.getIds());
        if (entityList.size()<=0) {
            return ResponseDTO.wrap(AgentCodeConst.NOT_EXIST);
        }
        agentApplyDao.updateById(2,dto.getIds());
        return ResponseDTO.succ();
    }
}
